package com.admin.vo;

/**
 * 异常处理相关错误码
 */
public enum ResultEnum {
    // 每类错误在一万的基础上加一千
    SUCCESS(000000,"成功"),
    // ------------user_token错误码-----------
    USER_TOKEN_NULL(10000, "请您登录后操作"),
    USER_PUSH_ID_NULL(10000, "push_userid为空"),
    PLATFORM_NULL(10000, "platform为空"),
    APP_DEVICE_NULL(10000, "app_device为空"),
    DEVICE_NUMBER_NULL(10000, "device_number为空"),
    USER_TOKEN_INVALID(10001, "请登陆！"),
    USER_TOKEN_NON_EXISTENT(10002, "用户信息已过期，请重新登陆！"),
    USER_WX_SIGN_ERR(10003, "获取微信授权失败！"),
    CURRENT_APP_VERSION_TO_LOW(10004, "当前app版本较低,请升级后在操作"),

    // ------------数据库操作错误码------------
    DATA_LOSS_OR_ERROR(10010, "数据丢失或错误"),
    SELECT_ERROR(10011, "查询失败"),
    INSERT_ERROR(10012, "添加失败"),
    DELETE_ERROR(10013, "删除失败"),
    UPDATE_ERROR(10014, "修改失败"),
    OPERATION_ERROR(10019, "操作失败"),
    BINDING_ERROR(10020, "绑定失败"),

    // ------------常见错误码-----------------
    PARAMETER_EMPTY(11000, "请求参数为空"),
    PARAMETER_MISMATCH(11001, "请求参数无效"),
    /**
     * 门店账户不存在
     */
    STORE_ACCOUNT_IS_NULL(4001, "门店账户不存在"),
    /**
     * 门店不存在
     */
    STORE_IS_NULL(4002, "门店不存在"),

    /**
     * 门店流程异常
     */
    STORE_PROCESS_ERROR(4003, "门店流程异常"),
    STORE_APPLY_PROCESS_ERROR(4004, "门店入驻流程异常"),
    STORE_RENOVATE_PROCESS_ERROR(4005, "门店翻新流程异常"),
    STORE_ADDRESS_PROCESS_ERROR(4006, "门店改址流程异常"),
    STORE_RENEWAL_PROCESS_ERROR(4007, "门店续签流程异常"),
    STORE_CHECK_OUT_PROCESS_ERROR(4008, "门店退店流程异常"),
    STORE_SUBJECT_PROCESS_ERROR(4009, "门店主体变更流程异常"),
    STORE_TRANSFER_PROCESS_ERROR(4010, "门店店铺转让流程异常"),
    STORE_APPLY_CREATE_CONTRACT_PROCESS_ERROR(4011, "门店入驻生成合同流程异常"),
    STORE_APPLY_CREATE_BOND_PAY_FLOW_PROCESS_ERROR(4012, "门店入驻生成保证金支付流水流程异常"),
    STORE_APPLY_CREATE_FRANCHISE_PAY_FLOW_PROCESS_ERROR(4013, "门店入驻生成加盟费支付流水流程异常"),
    CHANGE_STORE_PROCESS_ERROR(4014, "变更门店业务状态流程异常"),
    STORE_PROCESS_NULL(4015, "门店流程不存在"),
    STORE_CHANGE_PROCESS_ERROR(4016, "门店流程状态不正确"),
    PAY_OVER(4017, "已完成支付，正在处理中"),
    CONTRACT_OVER(4018, "合同已生成"),
    STORE_RENOVATE_PROCESS_NOLL(4019, "门店流程不存在"),
    STORE_PROCESS_NOT_COMPLTET(4020, "门店流程未完成，不能发起"),
    CONTRACT_LOG(4021, "合同记录不存在"),
    CONTRACT_GENERATION_FAILED(4022, "合同生成失败，请重新确认认证信息"),
    USER_AGENT_APPLY_REC_REGION_ERR(13013, "收货地必须选择到县或区..."),
    AGENT_OPERATION_STATUS_ERROR(26034, "当前状态不能进行此操作"),
    AGENT_MUST_CHOOSE_ENTIREPRISE_TYPE(26042, "请先选择企业认证类型"),
    AGENT_MUST_ERROE(26042, "认证信息不一致"),
    TOO_MANYESIGN_CALLS(140004, "当前用户OCR认证次数超过限制"),
    USER_AGENT_ESIGN_APPLY_ID_CARD_ERR(13050, "您上传的法人身份证照片不正确请重新上传"),
    USER_AGENT_ESIGN_APPLY_ID_CARD_EXPIRE_ERR(13051, "您上传的法人身份证照片已过期请更新后，重新上传"),
    USER_AGENT_ESIGN_APPLY_BUSS_AUTH_EXPIRE_ERR(13049, "您上传的营业执照已过期，请更新后，重新上传"),
    USER_AGENT_ESIGN_BUSS_AUTH_APPLY_NAME_NOT(13056, "你提交的认证信息不一致。请仔细核对你填写的信息与营业执照的信息是否一致"),
    USER_AGENT_ESIGN_BUSS_AUTH_APPLY_NAME_NOT_MATCH(13054, "您选择的认证类型与营业执照的类型不一致, 请重新选择"),
    USER_AGENT_ESIGN_BUSS_AUTH_APPLY_TYPE_NOT_MATCH(13055, "你提交的营业执照与认证信息不一致"),
    USER_AGENT_ESIGN_BUSS_AUTH_APPLY_TIME(13058, "认证次数过多，请明日再试"),
    USER_AGENT_ESIGN_BUSS_TIME_MANY(13057, "您提交的认证信息不一致已达多次，请确认您的信息是否填写无误"),
    PROCESS_IS_EXISTS(13009, "流程待审核已存在，不能重复提交"),
    E_SIGNATURE_ERROR(13060, "实名认证失败，请确认您的信息是否填写正确"),
    OCR_EXCEPTION(13061, "请按要求上传执照照片"),
    E_SIGNATURE_ERROR1(13060, "实名认证失败，请确认您的信息是否填写正确"),
    AGENT_ERROR(26051, "代理商数据异常"),
    DEALER_HAS_INCOMPLETE(26051, "该经销商有未完成的记录，无法提交"),
    RETROGRESSION(17029, "代理禁用或者已退代,无法进行此操作"),
    SIGNING_INFORMATION_ALREADY_EXISTS(26052, "当前信息已在管家存在"),
    OFFICIAL_AGENT(26053, "该手机号绑定的为正式经销商，无法在入驻中发起变更"),
    INFORMAL_DEALERS(26054, "该手机号绑定的为非正式经销商"),
    DEALER_APPLY_HAS_INCOMPLETE(26055, "该经销商处于入驻中的其他流程，无法发起变更"),
    Agent_PROCESS_NULL(26056, "当前账号没有会员注册，请先注册"),
    APPLY_NAME_SIZE(26057, "企业/经营者名称大于40个字"),
    APPLY_CODE_USC(26058, "信用代码大于30个字"),
    ADDRESS_ALREADY_EXISTS(26059, "默认地址已存在"),
    ;

    private int code;
    private String msg;
    private Object data;

    ResultEnum(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    ResultEnum(int code, String msg, Object data) {
        this.code = code;
        this.msg = msg;
        this.data = data;
    }

    public int getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }

    public Object getData() {
        return data;
    }

}
